package com.music.client.playlist.client;

import java.io.IOException;
import java.util.List;

import org.apache.commons.httpclient.HttpException;

import com.music.service.playlists.beans.Playlist;
import com.music.service.playlists.exceptions.InvalidUrlException;
import com.music.service.songs.beans.Song;

public interface PlaylistClient {
	public Playlist addPlaylist(Playlist pPlaylist);

	public void deletePlaylist(Playlist pPlaylist);

	public Playlist editPlaylist(Playlist pPlaylist);

	public List<Playlist> viewPlaylists(final Long pMemberId);

	public List<Playlist> getRecentPlaylists(Long pMemberId);

	public List<Playlist> getRecentPlaylists(final Long pMemberId,
			final int pLimit);

	public void addSongToPlaylist(Playlist pPlaylist, Song pSong);

	public void deleteSongFromPlaylist(Playlist pPlaylist, Song pSong);

	public Playlist addSongToPlaylist(Long pMemberId, Long pPlaylistId,
			String pSongName, String pUrl) throws IllegalAccessException,
			HttpException, IOException, InvalidUrlException, Exception;

	public Playlist getPlaylistInfoForMember(final Long pMemberId,
			final Long pPlaylistId);

	public Playlist getPlaylistSongsForMember(Long pMemberId, Long pPlaylistId);

}
